PAT 1038. Recover the Smallest Number (30)

#题目链接
http://pat.zju.edu.cn/contests/pat-a-practise/1038

#注意
对于两个具有相同首字母的字符串,到底哪个放在前面才能使得连接起来的字符串代表的数字更小,一个简单的方法是分别连接字符串a+b,b+a,然后比较连接后的两个字符串,哪个小,哪种链接方式就是对的。

#示例代码(最后一个case超时)

1
2
3
4
5
6
7
8
9
10
11
12
13
n = [x for x in raw_input().split()]
del n[0]
n.sort()
for i in range(1,len(n)):
if n[i-1][0] == n[i][0]:
if n[i]+n[i-1] < n[i-1]+n[i]:
tmp = n[i]
n[i] = n[i-1]
n[i-1] = tmp
result=''
for i in n:
result += i
print int(result)